Skip to content

docs: fix upstream sync runbook defects found on first run - #35

Merged
iancooper merged 3 commits into
mainfrom
docs/fix-upstream-sync-runbook
Sep 27, 2026
Merged

iancooper merged 3 commits into
mainfrom
docs/fix-upstream-sync-runbook

Conversation

@iancooper

Copy link
Copy Markdown
Member

Summary

Fixes four defects in .agent_instructions/upstream_sync.md that the first upstream sync (#28, sync report) hit when running the runbook as written.

  1. Step 0 couldn't run. It used curl, which .claude/settings.json denies. Now uses gh api 'repos/App-vNext/Polly/contents/LICENSE?ref=main' --jq .content | base64 -d. The path is quoted: unquoted, zsh globs the ?, the fetch silently never runs, and the empty file diffs like a gate failure. That happened on this run. A wc -c line now makes an empty fetch obvious.
  2. Step 1's compare returned 404. It passed upstream/main, which is a local remote-tracking ref, so GitHub doesn't recognise it. Now uses main. Also adds the local git rev-list cross-check.
  3. gh would have targeted Polly's repo. Once a clone has a remote named upstream, gh issue and gh pr resolve against App-vNext/Polly by default, so Step 3's report would have gone to Polly's tracker. Setup now includes gh repo set-default BrighterCommand/Fences.
  4. Dependabot group bumps ("Bump the X group with N updates") don't match ADR 0003 D5's Bump <dep> from <x> to <y> pattern. The runbook now says so explicitly: they go to a person and are usually skip-with-reason. The automatic pattern is not widened, because that would change an accepted ADR decision (D5), so it needs an amendment, not a runbook edit.

No licence-gate rule changes, so per the runbook's own closing section this doesn't need a new ADR.

Verification

  • Corrected Step 1 command run live: 29 ahead, 0 behind, matching git rev-list.
  • Corrected Step 0 command run live: empty diff (gate passed 2026-09-25).
  • markdownlint-cli2: 0 issues. Local pyspelling: no hits outside the two gitignored files.

🤖 Generated with Claude Code

The first sync (#28) hit four problems running the runbook as written:

- Step 0 used curl, which .claude/settings.json denies. Fetch the
  licence with gh api instead, quoted so zsh does not glob the '?', and
  add a size check so an empty fetch cannot pass for a gate failure.
- Step 1's compare API call passed upstream/main, a local ref, and got a
  404. GitHub needs main. Add the local git rev-list cross-check.
- Adding a remote named upstream makes gh default to App-vNext/Polly, so
  the Step 3 report would go to Polly's tracker. Setup now pins
  gh repo set-default to Fences.
- Dependabot group bumps do not match ADR 0003 D5's pattern. Document
  that they go to a person and are usually skip-with-reason; widening
  the automatic pattern is a D5 amendment, not a runbook edit.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Step 4.2 told porters to rename PollyServiceCollectionExtensions to
FencesServiceCollectionExtensions, a name fork-migration-plan.md
explicitly rejected. The shipped class is ResilienceServiceCollectionExtensions.
Also spell out the telemetry-name and path mappings a port has to apply.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@iancooper

Copy link
Copy Markdown
Member Author

Added a fifth fix: Step 4.2 named the renamed DI class as FencesServiceCollectionExtensions, which fork-migration-plan.md explicitly rejected. The shipped class is ResilienceServiceCollectionExtensions (see the 9.0.0 CHANGELOG entry). Step 4.2 now also spells out the telemetry-name and source/test path mappings.

@iancooper
iancooper merged commit e3a7e49 into main Sep 27, 2026
15 checks passed
@iancooper
iancooper deleted the docs/fix-upstream-sync-runbook branch September 27, 2026 10:47
@github-actions github-actions Bot locked and limited conversation to collaborators Sep 27, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant